package com.itheima.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Properties;

@Component("student")
public class Student {
    /*@Value("12")
    private Integer id;
    @Value("laofang")
    private String name;*/
    //当配置文件加载外部资源后赋值
    @Value("${id}")
    private Integer id;
    @Value("${name}")
    private String name;

    private String[] ages;
    private Properties properties;
    /**
     * *@Qualifier 根据传入的bean名称进行匹配
     *
     * @Autowired 当定义的类型下只有一个对应类时 可直接调用
     * 当定义的类型下有多个对应类时 根据起的成员变量的名字 进行匹配
     * required 默认值为true, 为必须注入数据 ，不写默认为true
     *  值为 flash, 非必须
     *
     *  两个注解一起使用
     */
//    @Autowired(required = false)
//    @Qualifier("user")
//    private User user;
    /**
     *
     */
    @Resource(name = "user")//等价于@Autowired + @Qualifier("user") 一起使用
    private User user;

    public void add() {
        user.add();
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", user=" + user +
                ", ages=" + Arrays.toString(ages) +
                ", properties=" + properties +
                '}';
    }
}
